package com.financing.wap.dao;

import java.sql.SQLException;
import java.util.List;
import java.util.Map;

import com.financing.wap.dto.BaseDTO;
import com.financing.wap.dto.DstArticleCategoriesDTO;
import com.financing.wap.dto.DstArticleDTO;
import com.financing.wap.dto.DstUserSettingDTO;
import com.financing.wap.dto.DstUserVisitLogDTO;
import com.financing.wap.vo.ArticleInfoVO;
import com.financing.wap.vo.DstUserCountInfoVO;
import com.financing.wap.vo.DstUserVisitLogVO;
import com.financing.wap.vo.admin.AdminArticleInfoVO;
import com.financing.wap.vo.admin.AdminUserInfoVO;
import com.financing.wap.vo.admin.AdminUserInvitationVO;
import com.financing.wap.vo.admin.AdminUserVO;

public interface ICommonDao extends IBaseDao<BaseDTO, Integer>  {
    public List<DstUserCountInfoVO> querySendDataList(DstUserSettingDTO dto)throws SQLException;
    
    public List<DstUserCountInfoVO> querySendHotArticleList(DstUserSettingDTO dto)throws SQLException;

	public List<DstUserCountInfoVO> sendSummaryReminderList(
			DstUserSettingDTO dto) throws SQLException;
	
	public DstUserCountInfoVO visitDateLog(String openid) throws SQLException;
	
	public List<ArticleInfoVO> visitArticleInfo(String openid) throws SQLException;

	public List<DstUserVisitLogVO> dstUserVisitLogList(DstUserVisitLogDTO dstUserVisitLog);

	public int dstUserVisitLogListCount(DstUserVisitLogDTO dstUserVisitLog);

	public void addVisitArticleLog(DstArticleDTO dto) throws SQLException;
	
    public List<DstArticleDTO> myAllArticleInfo(DstArticleDTO dstArticle)throws SQLException;
    public int myAllArticleInfoCount(DstArticleDTO dstArticle) throws SQLException;

	public int adminArticleInfoCount(AdminArticleInfoVO dstArticle);
	public List<AdminArticleInfoVO> adminAllArticleInfo(AdminArticleInfoVO dstArticle);
	
	public int allArticleTypeInfoCount(DstArticleCategoriesDTO dto);
	public List<DstArticleCategoriesDTO> allArticleTypeInfo(DstArticleCategoriesDTO dto);

	public List<String> dstUserVisitLogGroupDate(DstUserVisitLogDTO dstUserVisitLog);

	Map<String,String> queryOperationStatisticsForAll(Map<String, String> papMap);

	List<Map<String,String>> queryOperationStatisticsForDailyDischarge(Map<String, String> papMap);

	List<Map<String,String>> queryOperationStatisticsForDailyDischargeUser(Map<String, String> papMap);

	List<Map<String,String>> queryOperationStatisticsForArticleTrend(Map<String, String> papMap);

	List<Map<String,String>> queryOperationStatisticsForArticleType(Map<String, String> papMap);

    List<Map<String,String>> listDstUserVisitLogShare(Map<String, String> papMap);

	List<Map<String,Object>> listDstUserVisitLogShareIcon(Map<String, String> papMap);

	public List<Map<String, Object>> listDstUserVisitLogIcon(Map<String, String> papMap);

	public void addUserWeeklyTypeZh(Map<String, String> papMap);

	public void articleRealTimePush(Map<String, String> map);

    int queryUserInfoListCount(AdminUserVO adminUserVO);

	List<AdminUserVO> queryUserInfoList(AdminUserVO adminUserVO);

	AdminUserInfoVO queryUserInfoDetailed(String openid);

    List<AdminUserInvitationVO> adminUserInvitationList(String openid);
}
